const app = getApp(); // 引用全局App实例

Page({
  data: {
    avatarUrl: 'cloud://avalon-cloud-1gg01hi5d0e8cec0.6176-avalon-cloud-1gg01hi5d0e8cec0-1330536532/images/icons/defaultAvatar.png', // 默认头像
    nickname: '', // 昵称
    userInfo: null, // 存储用户信息
    roomId:'',
    openid:''
  },

  // 页面加载时检查本地存储和全局变量中的用户信息
  onLoad(options) {
    const storedUserInfo = wx.getStorageSync('userInfo') || app.globalData.userInfo;
    if (storedUserInfo) {
      this.setData({
        avatarUrl: storedUserInfo.avatarUrl, // 设置头像
        nickname: storedUserInfo.nickName, // 设置昵称
        userInfo: storedUserInfo // 设置用户信息
      });
    }
    const { roomId, openid } = options; // 获取参数
    this.setData({
      roomId,
      openid
    });
  },
  // 头像选择回调处理
  onChooseAvatar(e) {
    const { avatarUrl } = e.detail;
    this.setData({
      avatarUrl: avatarUrl // 设置新的头像
    });
  },

  // 昵称输入事件
  onNicknameInput(e) {
    this.setData({
      nickname: e.detail.value // 绑定输入的昵称
    });
  },

  // 昵称输入框失去焦点时处理
  onNicknameBlur(e) {
    const { value } = e.detail;
    if (value) {
      this.setData({
        nickname: value // 失去焦点时再保存一次输入的昵称
      });
    }
    console.log('昵称失去焦点:', value);
    // 可在此处进行安全检查
  },
  // 保存用户信息
  async saveInfo() {
    const { avatarUrl, nickname,roomId,openid } = this.data;

    if (!nickname || nickname.trim() === '') { // 修正昵称为空的检查
      wx.showToast({
        title: '请填写昵称',
        icon: 'none'
      });
      return;
    }

    // 保存用户信息
    const updatedUserInfo = {
      avatarUrl, // 头像URL
      nickName: nickname // 用户昵称
    };
    app.globalData.userInfo = updatedUserInfo;
    wx.setStorageSync('userInfo', updatedUserInfo); // 存储用户信息到本地存储

    //上传图片
    try {  
      // 使用 Promise 形式调用 uploadFile  
      const res = await wx.cloud.uploadFile({  
        cloudPath: `avatar/${Date.now()}.png`, // 云端保存的路径和文件名  
        filePath: avatarUrl, // 本地文件路径  
      });  
    
      // 上传成功，返回文件 ID  
      console.log('上传成功', res.fileID);  

      //保存用户信息(数据库)
      wx.cloud.callFunction({  
        name: 'update_info', 
        data: {  
          roomId: roomId,  
          openid: openid,  
          avatarUrl: res.fileID,  
          nickname: nickname  
        },  
        success: res => {  
          console.log(res.result);  
          // 处理成功逻辑  
        },  
        fail: err => {  
          console.error(err);  
          // 处理失败逻辑  
        }  
      });

    } catch (err) {  
      // 上传失败，打印错误并返回错误信息  
      console.error('上传失败', err);  
      
    }  

   
    
    // 显示保存成功提示，并返回到上一个页面
    wx.showToast({
      title: '保存成功',
      icon: 'success',
      duration: 2000,
      success: () => {
        setTimeout(() => {
          wx.navigateBack(); // 返回上一个页面
        }, 1000);
      }
    });
  },

  // 返回上一页
  goBack() {
    wx.navigateBack();
  }
});
